package com.aier.school.service;

import java.util.List;
import java.util.Map;

import com.aier.school.entity.SchoolTeacher;

public interface ISchoolTeacherService {

    //不是学校管理员
    short SCHOOL_TEACHER_ISADMIN_NO = 0;
    //是学校管理员
    short SCHOOL_TEACHER_ISADMIN_YES = 1;
    
    
    /**
     * 查询学校所有教师的名字和账户
     * @return
     */
    List<String> searchTNameAndAccountBySid(Integer sid);
    
    /**
     * 查询学校某职务 下教师的名字和账户
     * @return
     */    
    List<String> searchTNameAndAccountBySidGid(Long gid, Integer sid);

    /**
     * 根据学校id,账号,职务id查询学校教师列表
     * @return
     */
    List<SchoolTeacher> selectTeacher(Integer sid,String taccount,Long gid);
    
    /**
     * 分页显示学校教师列表
     * @return
     */
    Map<String, Object> searchSchoolTeacherList(int page,int pagesize, Integer sid,String account,Long gid);
    
    /**
     * 根据教师id查询学校教师
     * @return
     */
    SchoolTeacher searchSchoolTeacherById(Long tid);

    /**
     * 根据教师账号查询学校教师
     * @return
     */
    SchoolTeacher searchSchoolTeacherByAccount(String account,Integer sid);
    
    /**
     * 根据用户id和学校id查询学校教师
     * @return
     */
    SchoolTeacher searchSchoolTeacherByIds(Long uid, Integer sid);
    
    /**
     * 添加学校教师
     * @return
     */
    int insertSchoolTeacher(SchoolTeacher sTeacher);
    
    /**
     * 删除学校教师
     * @return
     */
    int deleteSchoolTeacher(Long tid);
        
    /**
     * 修改学校教师职务
     * @return
     */
    int updateSchoolTeacherGrade(Long tid,Long gid);    
    
    /**
     * 修改学校教师是否为学校管理员
     * @return
     */
    int updateSchoolTeacherState(Long tid,Short isadmin);

    /**
     * 修改教师--职务,班级,管理班级
     * @return
     */
    int updateSchoolTeacherManager(Long tid, Long gid, String cidList,
            String cidList_isadmin);

    /**
     * 查询学校教师列表
     * @return
     */
    List<SchoolTeacher> searchSchoolTeacherList(Integer sid);

    /**
     * 查询学校教师列表(带账号) 学校id
     * @return
     */
    List<SchoolTeacher> searchSchoolTeacherListSid_account(Integer sid);

    /**
     * 查询学校教师列表(带账号) 教师id列表
     * @return
     */
    List<SchoolTeacher> searchSchoolTeacherListTidList_account(List<Long> tidList);

    /**
     * 查询学校教师列表(带账号) 班级id列表
     * @return
     */
    List<SchoolTeacher> searchSchoolTeacherListCidList_account(List<Long> tidList);
    
    /**
     * 给教师分配短信
     * @return
     */
    int updateTeacherMessage(Long tid,Integer mesCount,Integer sid);   

    /**
     * 查询学校给教师分配短信历史记录
     * @return
     */
    Map<String, Object> searchAssignList(Long tid,int page,int page_size);
    
    /**
     * 分页显示 邀请教师记录(邀请到学校或班级)列表
     * @return
     */
    Map<String, Object> searchInviteTeacherList(int page,
            int pagesize, Integer sid);
    
    /**
     * 批量添加教师记录(添加到学校或班级)
     * @return
     */
    int insertTeacherList(Integer sid, Long tid,
            String inviteTea_message);
    
    /**
     * 给班级或教师分配短信
     * @return
     */
    int updateMessage(Integer sid, String assignList); 
    /**
     * 查询学校给教师或班级分配短信历史记录
     * @return
     */
    Map<String, Object> searchAssignRecord(Integer sid,Long cid,int page,int page_size);
       
    /**
     * 新版查询学校老师的信息
     * @return
     */
    Map<String, Object> searchSchoolTeacherNew(Integer sid, Long stid ,Long gid,int page,int page_size);
}
